using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using ToyStore.Domain.System;

namespace ToyStore.Domain.Store
{
	/// <summary>
	/// Klasa reprezentująca użytkownika systemu.
	/// </summary>
	[DisplayName("Zamówienie")]
	public class Order : BaseEntity
	{
		/// <summary>
		/// Konstruktor.
		/// </summary>
		public Order()
		{
			OrderedProducts = new List<OrderedProduct>();
		}

		/// <summary>
		/// Użytkownik składający zamówienie.
		/// </summary>
		[DisplayName("Kupujący"), Required]
		public virtual User User { get; set; }

		/// <summary>
		/// Lista zamówionych produktów.
		/// </summary>
		[DisplayName("Produkty")]
		public virtual IList<OrderedProduct> OrderedProducts { get; set; }
		
		/// <summary>
		/// Cena całkowita (netto).
		/// </summary>
		[DisplayName("Cena całkowita (netto)")]
		public virtual decimal SumPriceNetto { get; set; }

		/// <summary>
		/// Koszyk, na podstawie, które stworzono zamówienie.
		/// </summary>
		[DisplayName("Koszyk")]
		public virtual Cart Cart { get; set; }

		/// <summary>
		/// Cena całkowita (brutto).
		/// </summary>
		[DisplayName("Cena całkowita (brutto)")]
		public virtual decimal SumPriceBrutto { get; set; }
	}
}
